﻿//#define _CRT_SECURE_NO_WARNINGS	1
//#include<stdio.h>
//#include<stdlib.h>
////给定一个整数数组 nums，将数组中的元素向右轮转 k 个位置，其中 k 是非负数
////示例 1:
////
////输入: nums = [1, 2, 3, 4, 5, 6, 7], k = 3
////输出 : [5, 6, 7, 1, 2, 3, 4]
////解释 :
////	向右轮转 1 步 : [7, 1, 2, 3, 4, 5, 6]
////	向右轮转 2 步 : [6, 7, 1, 2, 3, 4, 5]
////	向右轮转 3 步 : [5, 6, 7, 1, 2, 3, 4]
////	示例 2 :
////
////	输入：nums = [-1, -100, 3, 99], k = 2
////	输出：[3, 99, -1, -100]
////	解释 :
////	向右轮转 1 步 : [99, -1, -100, 3]
////	向右轮转 2 步 : [3, 99, -1, -100]
////动态内存管理
//
////int main()
////{
	//int* p = (int*)malloc(20);
	//if (p==NULL)
	//{
	//	printf("%s\n", strerror(errno));
	//	return 1;
	//}
	////使用
	//for (int i=0;i<5;i++)
	//{
	//	p[i] = i + 1;
	//}
	////开辟一块40个字节的空间
	//int* ptr = (int*)realloc(p, 40);
	//if (ptr!=NULL)
	//{
	//	p = ptr;
	//}
	//for (int i=5;i<10;i++)
	//{
	//	p[i] = i + 1;
	//}
	//for (int i=0;i<10;i++)
	//{
	//	printf("%d ", p[i]);
	//}
	//
	////释放
	//free(p);
	//p = NULL; 
	//判定realloc开辟的空间是否越界
	//int* p = malloc(20);
	//if (p==NULL)
	//{
	//	printf("%s", strerror(errno));//显示错误信息
	//	return 1;
	//}
	//int* ptr = realloc(p, 4000000);//开辟过大，复制原来的数据，free原先的内存，返回一个新的地址
////	//内存泄露详解
////	//malloc
////	//calloc
////    //realloc
////	//所申请的空间，如果不使用，需要free释放
////	//如果不free释放：
////	//程序结束后，也会由操作系统回收
////	//如果不free，程序也不结束，内存泄露
////	int i = 0;
////	
////	return 0;
////
////}
//void test()
//{
//	int* p = (int*)malloc(20);
//
//}
//int main()
//{
//	test();
//	
//
//int main()
//{
//	while (1)
//	{
//		malloc(20);
//	}
//	return 0;
//}